
#ifndef GOMOKU_AI_DEFAULT_PLAYER_H__
# define GOMOKU_AI_DEFAULT_PLAYER_H__

# include <gomoku/core/IPlayer.h>

namespace gomoku
{
    class IReferee;

    class DefaultPlayer : public gomoku::IPlayer
    {
    public:
        DefaultPlayer();
        virtual ~DefaultPlayer();

        virtual void connectReferee(IReferee *referee);
        // STATE game

        // Color -> Black or White
        virtual Color color() const;
        virtual void setColor(Color color);

        // Type -> Human or CPU
        virtual PlayerType type() const;
        virtual void setType(PlayerType type);

        // think is call only for CPU player
        // else gui->think call by referee
        virtual Move think();
        virtual void updateGoban(Move const & move);
    private:
        IReferee *_referee;
        Color _color;
        PlayerType _type;
    };
}

#endif  // GOMOKU_AI_DEFAULT_PLAYER_H__
